In a computing environment (i.e., computer network, cluster, etc.), numerous applications providing various software services and functions are developed and deployed. Typically, these applications are deployed in conjunction with an application server that is running on a virtual machine. An application server provides a hosting platform under which an application is operable. A typical application server employs standards, e.g., Java 2 Platform, Enterprise Edition (J2EE), to enable developers to create web-based applications.
Web-based applications developed using the aforementioned standards typically include an Extensible Markup Language (XML) file (i.e., a deployment descriptor) that contains document descriptions. A portion of the XML file is related to user authentication. A web-based application includes resources that may be accessed by users as a uniform resource locator (URL). In some cases, these resources may be protected. In order to gain access to protected resources, user authentication is required.
Conventionally, filters (e.g., servlet filters, application filters, etc.) are implemented to integrate the application server with an identity server. The filters are also used to authenticate users of web-based applications. For example, when a resource is accessed by a user, the filter intercepts the request and authenticates the user against a proprietary security implementation or a user registry that is capable of integrating with the identity server. If the user is already authenticated, the filter is capable of making the container (that includes the web-based application) aware of the authentication. Filters are typically transparent to the end user and are part of the web-based application.
Further, filters are typically one of the many functionalities provided by agents. Agents are installed on the application server to provide a variety of functionalities, such as caching, event notifications, etc. A particular function of the agent includes protection of the web-based applications and resources available via the web-based applications. Therefore, the agent configures and gathers the parameters required for each application running within the application server. In some instances, each application running on the application server is running on a separate virtual machine. In this case, different applications may require different levels of authentication or authorization. In order to provide the necessary policy validations and user authentication that is specific to each application, an agent is installed for each application that is running.